using UnityEngine;
using Yoozoo.Gameplay;

/// <summary>
/// 技能动画对象脚本基类
/// 注意：将void Update()函数废弃，更新代码，写在TimeLineUpdate()函数中，这样才能在编辑状态下，逐帧编辑
/// </summary>
[ExecuteInEditMode]
public class SkillScriptBase : MonoBehaviour
{

    private void Update()
    {
#if UNITY_EDITOR
        if (Application.isPlaying)
        {
            TimeLineUpdate(-1, TimeUtils.GetClientTickTime(), Time.deltaTime, false);
        }
#else
        TimeLineUpdate(-1, TimeUtils.GetClientTickTime(), Time.deltaTime, false);
#endif
    }

    /// <summary>
    /// 时间线更新事件
    /// 替代void Update()
    /// 
    /// 运行时，frame为-1，总时间为Time.time时间
    /// 
    /// </summary>
    /// <param name="frame">第几帧</param>
    /// <param name="time">从第一帧到当前帧的总时间，秒</param>
    /// <param name="deltaTime">上次间隔时间</param>
    /// <param name="isJump">是否是跳跃到当前帧，主要是编辑器会直接跳跃到指定帧</param>
    public virtual void TimeLineUpdate(float frame, float time, float deltaTime,bool isJump)
    {

    }

}
